﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Data.SqlClient;

/// <summary>
/// 用ADO.Net对数据库操作函数的封装
/// </summary>
public class DBOperating
{
	#region 构造函数
	/**********************************************************************************************
	 ** 函数名：	DBOperating
	 ** 功能描述：	类构造函数，初始化数据库连接对象
	 ** 输入参数：
	 ** 输出参数：
	 ** 返回值：	SqlConnection		数据库连接对象
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-07-08
	 *********************************************************************************************/
	public DBOperating()
	{
		
	}
	#endregion

	#region 实现方法

	#region 获得数据库链接对象
	/// <summary>
	/// 获得数据库链接对象
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	获得数据库链接对象
	 ** 输入参数：
	 ** 返回值：
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-20 16:15
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	private SqlConnection GetConnection()
	{
		SqlConnection lconn;

		lconn = new SqlConnection();
		//lconn.ConnectionString = "server=172.16.8.31;database=PX;uid=px;pwd='px'";
		lconn.ConnectionString = "server=(local);database=PXExpert;uid=sa;pwd='sa123!'";
		
		return lconn;
	}
	#endregion

	#region 执行一个SQL语句，并返回受影响的行数
	/// <summary>
	/// 执行一个SQL语句，并返回受影响的行数
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	执行一个SQL语句，并返回受影响的行数，多用在添加、修改、删除功能
	 ** 输入参数：
	 ** 返回值：	int 受影响的行数，如果没有则为0
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-20 16:13
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	public int ExecuteSQL(string strSQL)
	{
		SqlConnection conn = new SqlConnection();
		int n = 0;

		try
		{
			conn = GetConnection();
			conn.Open();

			SqlCommand cmd = new SqlCommand(strSQL, conn);
			n = cmd.ExecuteNonQuery();
		}
		catch (SqlException ex)
		{
			ShowMessageAlert.ShowMessage(ex.Message);
		}
		finally
		{
			if (conn != null)
			{
				conn.Dispose();
			}
			
		}
		return n;
	}
	#endregion

	#region 根据查询条件查询，返回DataTable
	/// <summary>
	/// 根据查询条件查询，返回DataTable
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	根据查询条件查询，返回DataTable
	 ** 输入参数：
	 ** 返回值：
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-20 16:17
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	public DataTable QueryDataTable(string strSQL)
	{
		SqlConnection conn = new SqlConnection();
		DataSet ds = new DataSet();

		try
		{
			conn = GetConnection();
			conn.Open();
			SqlCommand cmd = new SqlCommand(strSQL, conn);
			SqlDataAdapter da = new SqlDataAdapter(cmd);
			da.Fill(ds);
		}
		catch (SqlException ex)
		{
			ShowMessageAlert.ShowMessage(ex.Message);
		}
		finally
		{
			if (conn != null)
			{
				conn.Close();
			}
		}
		return ds.Tables[0];
	}
	#endregion

	#endregion
}
